CSI 1308: Introduction to Computing Concepts

(Fall  2009)

 

(3 hours per week, 3 credits)

LEC 1 Monday, 10:00 - 11:30 LMX 223
LEC 2 Wednesday, 08:30 - 10:00 LMX 223
Tutorial Thursday, 17:30 - 19:30 STE 2052
 

Course Description

 

Introduction to computer based problem solving for scientific applications.  Design of algorithms and algorithmic descriptions.  4th generation languages.  Software packages.  Structured program development.  Modular and object-oriented programming.  Program testing. Prerequisites: OAC Calculus and Algebra and Geometry.

 

Courses ITI1120, ITI1220, CSI 1301, CSI 1303, and CSI 1390 cannot be combined for credits.

 

Professor:       Ivan Stojmenovic                        Web: www.site.uottawa.ca/~ivan

 

Textbook

  Course is based on classnotes and tutorials. There are plenty of books describing Java, and any of them can assist. One example is: Java for Engineers and Scientists, 2/E Stephen J. Chapman.  Prentice Hall. There exist also plenty of help on the Internet.

Evaluation  

Assignments:                 20%

no class October 12 (Thanksgiving)

Mid Term Exam:           30% (October 19 in LMX 342)

Note: Conversion from decimal to binary number systems and vice versa will be on the midterm, and 4 slides about it are added at the end of module 1 lecture.

Final Exam:                   50%

 

Note: a minimum of 50% of the average of the exams must be obtained to pass the course.

 

Assignments

 

Assignments are posted on the course Web page.   Each assignment must be done individually by each student.  Copying of assignments, even with superficial changes, is a serious form of academic fraud and will not be tolerated. 


Lab Access

 

Lab access time is a period during which the lab is reserved for a specific group to use the computers and be aided by a teaching assistant.  The labs are in room STE 2052.

 

Course Objectives

 

By the end of this course, students will have a good working knowledge on solving problems on the computer by using various techniques and methods within the framework of scientific applications.

Students will learn how to design efficient algorithms for solving problems.

  There is no assumption of any previous programming experience.

 

Course Content (with presentation slides and code samples)

---------------------

Introduction to computers and Java (module 1)

Basic computation (module 2) code samples listings 1.x, 2.x, 3.x

Flow of control: Branching (module 3)

Flow of control: Loops (module 4) code samples listings 4.x, 5.x

Arrays (module 5)

Defining classes and methods (module 6) code samples listings 7.x, 8.x

More about objects and methods (module 7) code samples listing 6.x

Polymorphism and Inheritance (module 9) listing 8.x (note: this is newly added module, marked as Module 8 in the notes)

Streams and File I/O (module 8) code samples listings 9.x an 10.x